Webpage rendering engines are the software components within a browser that are responsible for downloading source code for a webpage at a URL and transforming the source code and related resources into a viewable representation of the webpage that can be seen by humans. Examples of webpage rendering engines and frameworks include Webkit (which powers Google Chrome and Apple's Safari, and Opera Browser), Gecko (which powers Mozilla Firefox), and Trident (which powers Internet Explorer).
Steps that are performed by a typical web rendering engine include receiving a URL as input, fetching files (that include source code) from the input URL, and fetching related resources, such as Cascading Style Sheets (CSS) stylesheets, Javascripts, Images, AJAX, embedded documents—iframes, etc. The steps further include parsing and interpreting the source code, which are written in various programming languages and digital representations. Other steps include forming a model of the document, also referred to as a Document Object Model (DOM), and applying style rules to generate a 2D layout. Finally a faithful representation of the webpage is painted to an actual or virtual screen for an end user. Generally, a faithful representation of the webpage is considered to be a representation that uses all related resources referenced in the files fetched from URL that were intended in the design of the webpage to be used for rendering the webpage. Other terms for faithful representation are intended representation, conventional representation, or typical representation. The terms “object” and “resource” are used interchangeably in the present disclosure.
Latency is generally considered to be the amount of time it takes from when input is provided to the rendering engine until the rendered DOM is ready. The latency time is typically triggered by input of a URL. However, latency time may also be triggered by input such as a mouse click/form, a form input, or a scheduled event. Latency is generally attributed to Internet conditions such as bandwidth of the Internet, bandwidth of internet service providers, and delays internal to the servers that impact servicing requests for access to URL files and related resources. These conditions are generally beyond the control of rendering engines.